The present invention relates to timing in a process control network. More particularly, the present invention relates to a system and method for maintaining a common sense of time among devices in a segment of a process control packet based network.
In industrial processes, and particularly in control systems, data transmitted over the network may be critical or not. Critical data is data that is considered valid only for a limited period of time. Typically, such data represents real-time measurements and/or control information and is considered time-constrained by the process. All processing of such data, including both computing and transmission, must be carried out in a bounded time. Processing of non-critical data is less time-sensitive.
Non-time-constrained data involves data transmitted over the network in which a delay on the respective processing has no effect on the proper operation of the manufacturing process or on the quality of the products. Nevertheless, such data typically includes timing information so that the control system can monitor the timeliness (e.g. the time intervals and timing relationships) of various transactions and processes on the control network.
While devices on the packet based network (e.g. Foundation Fieldbus) typically have their own clocks for maintaining time, due to differences in the clocks and to distances between devices, it is difficult to synchronize precisely the clocks' signals between the control system and the various devices across the entire segment.
The purpose of the time synchronization on the segment is to provide a shared, approximately synchronized, internal time reference for all connected devices. Generally, the time synchronization includes both a monotonically increasing component and an offset component. The monotonically increasing component increases with time beginning with a value of zero at the startup of the local end system. The offset component is a value that, when added to the monotonically increasing component, causes the sum to be approximately equal to the corresponding sums of other correctly-functioning devices on the segment.
Conventionally, to maintain a common sense of time among the various devices on a segment of a process control network, one of the devices on the segment serves as a time master, sending time updates to the other devices on the segment, known as time slaves. The time slaves then use the time updates to synchronize their own “sense of time” to that of the time master. However, since the devices are physically separate entities, their internal clocks will not run at exactly the same rate as that of the time master.
To account for timing differences, the internal clock of each slave device must be scaled so that the devices can maintain a sense of time that is synchronized to the time master. In the case of a Foundation Fieldbus network, this scale factor for each device must be sufficiently accurate to meet the maximum phase-tracking error specified in the Foundation Fieldbus Datalink Protocol Specification, ANSI/ISA-S50.02 (1997), section 11.3a. Additionally, the scale factor must be applied to the internal clock of the device each time the device's sense of time is read.
Conventional systems implement the time scaling in software, thereby incurring software processing overhead each time the sense of time is read. The software overhead can be significant since the scale factor is a fixed-point, or potentially a floating-point number.